#include <climits>
class Solution {
public:
    int minSubArrayLen(int target, vector<int>& nums)
    {
        int len = INT_MAX, sum = 0;
        for (int left = 0, right = 0; right < nums.size(); ++right)
        {
            sum += nums[right];
            while (sum >= target)
            {
                len = min(len, right - left);
                sum -= nums[left++];
            }
        }
        return len == INT_MAX ? 0 : len + 1;
    }
};